// package com.gxz.logbacktest.config;
//
// import cn.hutool.json.JSONUtil;
// import lombok.extern.slf4j.Slf4j;
// import org.aspectj.lang.ProceedingJoinPoint;
// import org.aspectj.lang.annotation.Around;
// import org.aspectj.lang.annotation.Aspect;
// import org.aspectj.lang.annotation.Pointcut;
// import org.springframework.stereotype.Component;
//
// @Slf4j
// @Component // 将对象交由spring进行管理
// @Aspect
// public class WebLogAspect {
//
//     @Pointcut("execution(public * com.gxz.logbacktest.controller..*.*(..))")
//     public void webLog() {}
//
//     @Around("webLog()")
//     public Object around(ProceedingJoinPoint pjp) throws Throwable {
//         // 获取方法名
//         String className = pjp.getSignature().getClass().getName();
//         // 获取执行的方法名称
//         String methodName = pjp.getSignature().getName();
//         // 定义返回参数
//         Object result = null;
//         // 记录开始时间
//         long start = System.currentTimeMillis();
//         // 获取方法参数
//         Object[] args = pjp.getArgs();
//         StringBuilder params = new StringBuilder("前端请求参数为:");
//         //获取请求参数集合并进行遍历拼接
//         for (Object object : args) {
//             params.append(object.toString()).append(",");
//         }
//         params = new StringBuilder(params.substring(0, params.length() - 1));
//         //打印请求参数参数
//         log.info(className+"类的"+methodName + "的" + params);
//         // 执行目标方法
//         result = pjp.proceed();
//         // 打印返回报文
//         log.info("方法返回报文为:" + JSONUtil.toJsonStr(result));
//         // 获取执行完的时间
//         log.info(methodName + "方法执行时长为:" + (System.currentTimeMillis() - start));
//         return result;
//     }
// }
